apportableについて
概要
調べ中なので、この文章は、知ってる人が見ればいいや程度のもので、啓蒙、オススメなどをするものでは有りません。
いろいろあってIndieを触ってみる事になった。
まだ色々整ってない印象。
最初に注意
apportableのインストール前に、XcodeのDeveloperPreviewとかが手元に有る場合、
注意。
apportableのツール内からxcrunで使われるんだけど、
プレビュー版が自動的に使われてそりゃもう動かんかった。
xcode-select --switch で指定し直せば動く。
導入
ログイン後、ページからStarterKitがゲットできる。
ここには書かないのでえーと頑張ってアカウント作ってください。
ゴバっといろいろインストールします。
インストール先は限定されているので、安心。
highvision:~ highvision$ XXXXXXXXXXXXXXXXXXXXXXXXX
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1345 100 1345 0 0 544 0 0:00:02 0:00:02 --:--:-- 928
Checking for latest SDK...
Downloading SDK from XXXXXXXXXXXXXXXXXXXXXXXXX
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 47.4M 100 47.4M 0 0 596k 0 0:01:21 0:01:21 --:--:-- 505k
SDK installed into /Users/highvision/.apportable/SDK. Now updating toolchain.
vorbis-tools
==============================
installed: 0c2e4c653c107b53e366ad8d352839dfca8495b0
current: 0c2e4c653c107b53e366ad8d352839dfca8495b0
stable: 0c2e4c653c107b53e366ad8d352839dfca8495b0
1) 0c2e4c653c107b53e366ad8d352839dfca8495b0 Tue May 21 10:26:49 2013
android-ndk
==============================
installed: r8d.1
current: r8d.1
stable: r8d.1
1) r8d Sat Feb 23 19:47:47 2013
2) r8d.1 Wed May 8 00:38:36 2013
clang
==============================
installed: 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e
current: 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e
stable: 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e
1) 06017c71300e33419f46b46f350192b6032e7e0d Sat Feb 23 19:47:47 2013
2) c250d8b6c0aba5ae481526606084bb3112c3e6ff Tue Feb 26 20:37:09 2013
3) bee9c1e91260dd269d1a85ec5d11f1e8835c25b2 Tue Feb 26 20:37:09 2013
4) 925804cd386ea8c186ee9c6995cd44bab3b95f14 Sun May 5 17:28:19 2013
5) 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e Thu May 23 23:41:34 2013 llvm/clang 3.3
profiler
==============================
installed: c905419b4766ef76d2eab8d17e98ee185f7e911c
current: c905419b4766ef76d2eab8d17e98ee185f7e911c
stable: c905419b4766ef76d2eab8d17e98ee185f7e911c
1) c905419b4766ef76d2eab8d17e98ee185f7e911c Tue Jun 4 13:08:24 2013 1.01
m4
==============================
installed: e447db581a4b3d4655ad62ea85d0445342c4ac6a
current: e447db581a4b3d4655ad62ea85d0445342c4ac6a
stable: e447db581a4b3d4655ad62ea85d0445342c4ac6a
1) e447db581a4b3d4655ad62ea85d0445342c4ac6a Mon Jun 3 19:13:45 2013
gdb
==============================
installed: 8c0d2ad999905881f5d1b9dbbb8169f3a56a7171
current: ff0611b8b721b3bf393c655c7d147de52cc850ac
stable: 4e639d65677bb04a16bd74a6ceb923855ac81c97
1) ee42cf949ec7ce4e3cf2ab0405fd394f29b27e40 Sat Feb 23 19:47:47 2013
2) fcb36ce2778272469bf28e91280e81838c8373de Sat Feb 23 19:47:47 2013
3) 6675c30e360ae2abc7b96c040c3867a37ae0440a Wed Apr 3 16:33:17 2013
4) a0aeb55ac44b11b83707fedf19bac41b616948c0 Sun May 5 17:28:19 2013
5) 8c0d2ad999905881f5d1b9dbbb8169f3a56a7171 Wed May 29 17:28:19 2013
6) 4e639d65677bb04a16bd74a6ceb923855ac81c97 Thu May 30 17:49:10 2013
7) ff0611b8b721b3bf393c655c7d147de52cc850ac Thu Jun 27 14:58:40 2013
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 9.9M 100 9.9M 0 0 530k 0 0:00:19 0:00:19 --:--:-- 657k
x gdb/
x gdb/bin/
x gdb/include/
x gdb/lib/
x gdb/share/
x gdb/share/gdb/
x gdb/share/info/
x gdb/share/locale/
x gdb/share/man/
x gdb/share/remote/
x gdb/share/remote/android/
x gdb/share/remote/android/arm/
x gdb/share/remote/android/arm/gdbserver
x gdb/share/man/man1/
x gdb/share/man/man1/arm-elf-linux-gdb.1
x gdb/share/man/man1/arm-elf-linux-run.1
x gdb/share/locale/da/
x gdb/share/locale/de/
x gdb/share/locale/es/
x gdb/share/locale/fi/
x gdb/share/locale/fr/
x gdb/share/locale/ga/
x gdb/share/locale/id/
x gdb/share/locale/it/
x gdb/share/locale/ja/
x gdb/share/locale/nl/
x gdb/share/locale/pt_BR/
x gdb/share/locale/ro/
x gdb/share/locale/ru/
x gdb/share/locale/rw/
x gdb/share/locale/sv/
x gdb/share/locale/tr/
x gdb/share/locale/uk/
x gdb/share/locale/vi/
x gdb/share/locale/zh_CN/
x gdb/share/locale/zh_CN/LC_MESSAGES/
x gdb/share/locale/zh_CN/LC_MESSAGES/bfd.mo
x gdb/share/locale/zh_CN/LC_MESSAGES/opcodes.mo
x gdb/share/locale/vi/LC_MESSAGES/
x gdb/share/locale/vi/LC_MESSAGES/bfd.mo
x gdb/share/locale/vi/LC_MESSAGES/opcodes.mo
x gdb/share/locale/uk/LC_MESSAGES/
x gdb/share/locale/uk/LC_MESSAGES/bfd.mo
x gdb/share/locale/tr/LC_MESSAGES/
x gdb/share/locale/tr/LC_MESSAGES/bfd.mo
x gdb/share/locale/tr/LC_MESSAGES/opcodes.mo
x gdb/share/locale/sv/LC_MESSAGES/
x gdb/share/locale/sv/LC_MESSAGES/bfd.mo
x gdb/share/locale/sv/LC_MESSAGES/opcodes.mo
x gdb/share/locale/rw/LC_MESSAGES/
x gdb/share/locale/rw/LC_MESSAGES/bfd.mo
x gdb/share/locale/ru/LC_MESSAGES/
x gdb/share/locale/ru/LC_MESSAGES/bfd.mo
x gdb/share/locale/ro/LC_MESSAGES/
x gdb/share/locale/ro/LC_MESSAGES/bfd.mo
x gdb/share/locale/ro/LC_MESSAGES/opcodes.mo
x gdb/share/locale/pt_BR/LC_MESSAGES/
x gdb/share/locale/pt_BR/LC_MESSAGES/opcodes.mo
x gdb/share/locale/nl/LC_MESSAGES/
x gdb/share/locale/nl/LC_MESSAGES/opcodes.mo
x gdb/share/locale/ja/LC_MESSAGES/
x gdb/share/locale/ja/LC_MESSAGES/bfd.mo
x gdb/share/locale/it/LC_MESSAGES/
x gdb/share/locale/it/LC_MESSAGES/opcodes.mo
x gdb/share/locale/id/LC_MESSAGES/
x gdb/share/locale/id/LC_MESSAGES/bfd.mo
x gdb/share/locale/id/LC_MESSAGES/opcodes.mo
x gdb/share/locale/ga/LC_MESSAGES/
x gdb/share/locale/ga/LC_MESSAGES/opcodes.mo
x gdb/share/locale/fr/LC_MESSAGES/
x gdb/share/locale/fr/LC_MESSAGES/bfd.mo
x gdb/share/locale/fr/LC_MESSAGES/opcodes.mo
x gdb/share/locale/fi/LC_MESSAGES/
x gdb/share/locale/fi/LC_MESSAGES/bfd.mo
x gdb/share/locale/fi/LC_MESSAGES/opcodes.mo
x gdb/share/locale/es/LC_MESSAGES/
x gdb/share/locale/es/LC_MESSAGES/bfd.mo
x gdb/share/locale/es/LC_MESSAGES/opcodes.mo
x gdb/share/locale/de/LC_MESSAGES/
x gdb/share/locale/de/LC_MESSAGES/opcodes.mo
x gdb/share/locale/da/LC_MESSAGES/
x gdb/share/locale/da/LC_MESSAGES/bfd.mo
x gdb/share/locale/da/LC_MESSAGES/opcodes.mo
x gdb/share/info/annotate.info
x gdb/share/info/bfd.info
x gdb/share/info/configure.info
x gdb/share/info/dir
x gdb/share/info/gdb.info
x gdb/share/info/gdbint.info
x gdb/share/info/stabs.info
x gdb/share/info/standards.info
x gdb/share/gdb/python/
x gdb/share/gdb/syscalls/
x gdb/share/gdb/syscalls/amd64-linux.xml
x gdb/share/gdb/syscalls/gdb-syscalls.dtd
x gdb/share/gdb/syscalls/i386-linux.xml
x gdb/share/gdb/syscalls/mips-n32-linux.xml
x gdb/share/gdb/syscalls/mips-n64-linux.xml
x gdb/share/gdb/syscalls/mips-o32-linux.xml
x gdb/share/gdb/syscalls/ppc-linux.xml
x gdb/share/gdb/syscalls/ppc64-linux.xml
x gdb/share/gdb/syscalls/sparc-linux.xml
x gdb/share/gdb/syscalls/sparc64-linux.xml
x gdb/share/gdb/python/gdb/
x gdb/share/gdb/python/gdb/__init__.py
x gdb/share/gdb/python/gdb/command/
x gdb/share/gdb/python/gdb/printing.py
x gdb/share/gdb/python/gdb/prompt.py
x gdb/share/gdb/python/gdb/types.py
x gdb/share/gdb/python/gdb/command/__init__.py
x gdb/share/gdb/python/gdb/command/explore.py
x gdb/share/gdb/python/gdb/command/pretty_printers.py
x gdb/share/gdb/python/gdb/command/prompt.py
x gdb/lib/libarm-elf-linux-sim.a
x gdb/lib/x86_64/
x gdb/lib/x86_64/libiberty.a
x gdb/include/gdb/
x gdb/include/gdb/jit-reader.h
x gdb/bin/arm-elf-linux-gdb
x gdb/bin/arm-elf-linux-run
adb
==============================
installed: cd96bfaea0f38a2de67e478463b24a4394be2cb3
current: cd96bfaea0f38a2de67e478463b24a4394be2cb3
stable: cd96bfaea0f38a2de67e478463b24a4394be2cb3
1) cd96bfaea0f38a2de67e478463b24a4394be2cb3 Wed Jun 12 23:28:06 2013
android-sdk
==============================
installed: r21.0.1.1
current: r21.0.1.1
stable: r21.0.1.1
1) r21.0.1 Sat Feb 23 19:47:47 2013
2) r21.0.1.1 Wed May 8 00:38:36 2013
Toolchain downloaded into /Users/highvision/.apportable/toolchain.
Apportable CLI is successfully installed at /Users/highvision/.apportable/SDK/bin/apportable
If you're using the default shell, add the Apportable CLI to your PATH using:
(echo; echo 'PATH="/Users/highvision/.apportable/SDK/bin:$PATH"') >> ~/.bash_profile; source ~/.bash_profile
highvision:~ highvision$ /Users/highvision/.apportable/SDK/bin/apportable update
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1345 0 1345 0 0 428 0 --:--:-- 0:00:03 --:--:-- 848
Checking for latest SDK...
Downloading SDK from XXXXXXXXXXXXXXXXXXXXXXXXX
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 47.4M 100 47.4M 0 0 514k 0 0:01:34 0:01:34 --:--:-- 684k
SDK installed into /Users/highvision/.apportable/SDK. Now updating toolchain.
vorbis-tools
==============================
installed: 0c2e4c653c107b53e366ad8d352839dfca8495b0
current: 0c2e4c653c107b53e366ad8d352839dfca8495b0
stable: 0c2e4c653c107b53e366ad8d352839dfca8495b0
1) 0c2e4c653c107b53e366ad8d352839dfca8495b0 Tue May 21 10:26:49 2013
android-ndk
==============================
installed: r8d.1
current: r8d.1
stable: r8d.1
1) r8d Sat Feb 23 19:47:47 2013
2) r8d.1 Wed May 8 00:38:36 2013
clang
==============================
installed: 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e
current: 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e
stable: 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e
1) 06017c71300e33419f46b46f350192b6032e7e0d Sat Feb 23 19:47:47 2013
2) c250d8b6c0aba5ae481526606084bb3112c3e6ff Tue Feb 26 20:37:09 2013
3) bee9c1e91260dd269d1a85ec5d11f1e8835c25b2 Tue Feb 26 20:37:09 2013
4) 925804cd386ea8c186ee9c6995cd44bab3b95f14 Sun May 5 17:28:19 2013
5) 7fc8b05e4f57f61dbbbe5c8e62581b0e0c42941e Thu May 23 23:41:34 2013 llvm/clang 3.3
profiler
==============================
installed: c905419b4766ef76d2eab8d17e98ee185f7e911c
current: c905419b4766ef76d2eab8d17e98ee185f7e911c
stable: c905419b4766ef76d2eab8d17e98ee185f7e911c
1) c905419b4766ef76d2eab8d17e98ee185f7e911c Tue Jun 4 13:08:24 2013 1.01
m4
==============================
installed: e447db581a4b3d4655ad62ea85d0445342c4ac6a
current: e447db581a4b3d4655ad62ea85d0445342c4ac6a
stable: e447db581a4b3d4655ad62ea85d0445342c4ac6a
1) e447db581a4b3d4655ad62ea85d0445342c4ac6a Mon Jun 3 19:13:45 2013
gdb
==============================
installed: 4e639d65677bb04a16bd74a6ceb923855ac81c97
current: ff0611b8b721b3bf393c655c7d147de52cc850ac
stable: 4e639d65677bb04a16bd74a6ceb923855ac81c97
1) ee42cf949ec7ce4e3cf2ab0405fd394f29b27e40 Sat Feb 23 19:47:47 2013
2) fcb36ce2778272469bf28e91280e81838c8373de Sat Feb 23 19:47:47 2013
3) 6675c30e360ae2abc7b96c040c3867a37ae0440a Wed Apr 3 16:33:17 2013
4) a0aeb55ac44b11b83707fedf19bac41b616948c0 Sun May 5 17:28:19 2013
5) 8c0d2ad999905881f5d1b9dbbb8169f3a56a7171 Wed May 29 17:28:19 2013
6) 4e639d65677bb04a16bd74a6ceb923855ac81c97 Thu May 30 17:49:10 2013
7) ff0611b8b721b3bf393c655c7d147de52cc850ac Thu Jun 27 14:58:40 2013
adb
==============================
installed: cd96bfaea0f38a2de67e478463b24a4394be2cb3
current: cd96bfaea0f38a2de67e478463b24a4394be2cb3
stable: cd96bfaea0f38a2de67e478463b24a4394be2cb3
1) cd96bfaea0f38a2de67e478463b24a4394be2cb3 Wed Jun 12 23:28:06 2013
android-sdk
==============================
installed: r21.0.1.1
current: r21.0.1.1
stable: r21.0.1.1
1) r21.0.1 Sat Feb 23 19:47:47 2013
2) r21.0.1.1 Wed May 8 00:38:36 2013
Toolchain downloaded into /Users/highvision/.apportable/toolchain.
Apportable CLI is successfully installed at /Users/highvision/.apportable/SDK/bin/apportable
If you're using the default shell, add the Apportable CLI to your PATH using:
(echo; echo 'PATH="/Users/highvision/.apportable/SDK/bin:$PATH"') >> ~/.bash_profile; source ~/.bash_profile
highvision:~ highvision$
ここまでで、2.6Gくらい持っていく。
インストールは下記にされる
/Users/highvision/.apportable/SDK/bin あたり。
もさっと。
Start
まずこのへん見ろってサイトにあったので見る
http://docs.apportable.com/sample-apps.html#tweejump
「もしAndroid触った事無くても大丈夫、iOS7とおなじようなもんです」っていきなり言っててワロタ。はい。
で、
https://github.com/haqu/tweejump
をDLしてやってみろksg、みたいな話。
PapiJumpのTwアイコン版です。うわあなつかしい。
そんなPapiJump
で、まず動かすのはiOS App
Xcodeプロジェクトを開いて、そのままiOSとかで実行すると
まーこんな感じで動作する。
Android App 化
事前に実機を繋いでおく必要がある。
Xcode プロジェクト フォルダがある場所で、
apportable load
で、またモサッと。
highvision:tweejump highvision$ /Users/highvision/.apportable/SDK/bin/apportable load
Building to /Users/highvision/.apportable/SDK/Build/android-armeabi-debug
Updating configuration parameters... Building Xcode project /Users/highvision/Desktop/tweejump/tweejump
Scanning build configuration for target tweejump
Merging configuration parameters.
It looks like you're compiling this app for the first time.
tweejump.approj/configuration.json will be created for you.
A few quick questions and you'll be on your way:
If the app is using OpenGL ES, does it use ES1 or ES2? (Cocos2D 1.X uses ES1, 2.X uses ES2)
[1/2]
使ってない場合どうこたえろっちゅーねん → 何も打たずエンターでOK。
Should the app initially launch in landscape or portrait orientation? (default: landscape)
[L/p]
どちらなりと。
Loading configuration.
Finished parsing configuration.
scons: Building targets ...
Compiling /Users/highvision/Desktop/tweejump/tweejump/AppDelegate.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/Classes/Game.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/Classes/Highscores.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/Classes/Main.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/RootViewController.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/FontLabel/FontLabel.m
/Users/highvision/Desktop/tweejump/tweejump/Classes/Game.m:266:7: warning:
expression result unused [-Wunused-value]
for(t; t < kPlatformsStartTag + kNumPlatforms; t++) {
^
/Users/highvision/Desktop/tweejump/tweejump/Classes/Game.m:296:7: warning:
expression result unused [-Wunused-value]
for(t; t < kCloudsStartTag + kNumClouds; t++) {
^
/Users/highvision/Desktop/tweejump/tweejump/Classes/Game.m:309:7: warning:
expression result unused [-Wunused-value]
for(t; t < kPlatformsStartTag + kNumPlatforms; t++) {
^
/Users/highvision/Desktop/tweejump/tweejump/Classes/Main.m:112:6: warning:
expression result unused [-Wunused-value]
for(t; t < kCloudsStartTag + kNumClouds; t++) {
^
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/FontLabel/FontLabelStringDrawing.m
1 warning generated.
3 warnings generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/FontLabel/FontManager.m
/Users/highvision/Desktop/tweejump/tweejump/libs/FontLabel/FontLabelStringDrawing.m:458:25: warning:
incompatible pointer types initializing 'NSMutableCharacterSet *' with an
expression of type 'NSCharacterSet *' [-Wincompatible-pointer-types]
...*alphaCharset = [NSMutableCharacterSet alphanumericCharacterSet];
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/FontLabel/ZAttributedString.m
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/FontLabel/ZFont.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCAction.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionCamera.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionEase.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCAction.m:67:77: warning:
format specifies type 'unsigned int' but the argument has type
'CCAction *' [-Wformat]
...stringWithFormat:@"<%@ = %08X | Tag = %i>", [self class], self, tag_];
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionGrid.m
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionGrid3D.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionInstant.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionInterval.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionManager.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionInstant.m:260:4: warning:
format specifies type 'unsigned int' but the argument has type
'CCCallFunc *' [-Wformat]
self,
^~~~
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionPageTurn3D.m
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionProgressTimer.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionTiledGrid.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCActionTween.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCAnimation.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCAnimationCache.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCAnimation.m:73:88: warning:
format specifies type 'unsigned int' but the argument has type
'CCAnimation *' [-Wformat]
...= %08X | frames=%d, delay:%f>", [self class], self,
~~~~ ^~~~
%8@
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCAtlasNode.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCAnimationCache.m:70:92: warning:
format specifies type 'unsigned int' but the argument has type
'CCAnimationCache *' [-Wformat]
...= %08X | num of animations = %i>", [self class], self, [animations_ cou...
~~~~ ^~~~
%8@
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCBlockSupport.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCCamera.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCConfiguration.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCDirector.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCCamera.m:46:94: warning:
format specifies type 'unsigned int' but the argument has type
'CCCamera *' [-Wformat]
...= %08X | center = (%.2f,%.2f,%.2f)>", [self class], self, centerX_, cent...
~~~~ ^~~~
%8@
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCDrawingPrimitives.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCGrabber.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCGrid.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCLabelAtlas.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCLabelBMFont.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCGrid.m:128:87: warning:
format specifies type 'unsigned int' but the argument has type
'CCGridBase *' [-Wformat]
...= %08X | Dimensions = %ix%i>", [self class], self, gridSize_.x, gridSize...
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCLabelTTF.m
1 warning generated.
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCLabelBMFont.m:124:93: warning:
format specifies type 'unsigned int' but the argument has type
'CCBMFontConfiguration *' [-Wformat]
...= %08X | Kernings:%d | Image = %@>", [self class], self,
~~~~ ^~~~
%8@
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCLabelTTF.m:139:84: warning:
format specifies type 'unsigned int' but the argument has type
'CCLabelTTF *' [-Wformat]
...stringWithFormat:@"<%@ = %08X | FontSize = %.1f>", [self class], self, f...
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCLayer.m
1 warning generated.
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCMenu.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCMenuItem.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCMotionStreak.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCNode.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCParallaxNode.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCNode.m:321:77: warning:
format specifies type 'unsigned int' but the argument has type 'CCNode *'
[-Wformat]
...stringWithFormat:@"<%@ = %08X | Tag = %i>", [self class], self, tag_];
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCParticleExamples.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCParticleSystem.m
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCParticleSystemPoint.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCParticleSystemQuad.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCProgressTimer.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCRenderTexture.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCRibbon.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCScene.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCRibbon.m:314:89: warning:
format specifies type 'unsigned int' but the argument has type
'CCRibbonSegment *' [-Wformat]
...= %08X | end = %i, begin = %i>", [self class], self, end, begin];
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCScheduler.m
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSprite.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSpriteBatchNode.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCScheduler.m:125:92: warning:
format specifies type 'unsigned int' but the argument has type 'CCTimer *'
[-Wformat]
...= %08X | target:%@ selector:(%@)>", [self class], self, [target class], ...
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSpriteFrame.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSprite.m:275:126: warning:
format specifies type 'unsigned int' but the argument has type
'CCSprite *' [-Wformat]
...%08X | Rect = (%.2f,%.2f,%.2f,%.2f) | tag = %i | atlasIndex = %i>", [self class], self,
~~~~ ^~~~
%8@
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSpriteBatchNode.m:120:77: warning:
format specifies type 'unsigned int' but the argument has type
'CCSpriteBatchNode *' [-Wformat]
...stringWithFormat:@"<%@ = %08X | Tag = %i>", [self class], self, tag_ ];
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSpriteFrameCache.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSpriteFrame.m:67:124: warning:
format specifies type 'unsigned int' but the argument has type
'CCSpriteFrame *' [-Wformat]
...%08X | TextureName=%d, Rect = (%.2f,%.2f,%.2f,%.2f)> rotated:%d", [self class], self,
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTMXLayer.m
1 warning generated.
1 warning generated.
1 warning generated.
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTMXObjectGroup.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCSpriteFrameCache.m:83:95: warning:
format specifies type 'unsigned int' but the argument has type
'CCSpriteFrameCache *' [-Wformat]
...= %08X | num of sprite frames = %i>", [self class], self, [spriteFrames...
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTMXTiledMap.m
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTMXXMLParser.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTexture2D.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTextureAtlas.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTextureCache.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTexture2D.m:183:128: warning:
format specifies type 'unsigned int' but the argument has type
'CCTexture2D *' [-Wformat]
...%08X | Name = %i | Dimensions = %ix%i | Coordinates = (%.2f, %.2f)>", [self class], self...
~~~~ ^~~~
%8@
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTexturePVR.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTextureAtlas.m:113:85: warning:
format specifies type 'unsigned int' but the argument has type
'CCTextureAtlas *' [-Wformat]
...stringWithFormat:@"<%@ = %08X | totalQuads = %i>", [self class], self, ...
~~~~ ^~~~
%8@
1 warning generated.
1 warning generated.
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTextureCache.m:115:4: warning:
format specifies type 'unsigned int' but the argument has type
'CCTextureCache *' [-Wformat]
self,
^~~~
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTileMapAtlas.m
1 warning generated.
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTransition.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTransitionPageTurn.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/CCTransitionRadial.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/Mac/CCDirectorMac.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/Mac/CCEventDispatcher.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/Mac/MacGLView.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/Mac/MacWindow.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/iOS/CCDirectorIOS.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/iOS/CCTouchDispatcher.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/iOS/CCTouchHandler.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/iOS/EAGLView.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/iOS/ES1Renderer.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/iOS/glu.c
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/CCArray.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/CCFileUtils.m
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Platforms/iOS/ES1Renderer.m:188:81: warning:
format specifies type 'unsigned int' but the argument has type
'ES1Renderer *' [-Wformat]
...stringWithFormat:@"<%@ = %08X | size = %ix%i>", [self class], self, back...
~~~~ ^~~~
%8@
1 warning generated.
/Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/CCArray.m:294:94: warning:
format specifies type 'unsigned int' but the argument has type 'CCArray *'
[-Wformat]
...stringWithFormat:@"<%@ = %08X> = ( ", [self class], self];
~~~~ ^~~~
%8@
1 warning generated.
コンパイル過程で、LLVMっぽいWarningが出ている。
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/CCProfiling.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/CGPointExtension.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/TGAlib.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/TransformUtils.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/ZipUtils.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/base64.c
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/Support/ccUtils.c
Compiling /Users/highvision/Desktop/tweejump/tweejump/libs/cocos2d/cocos2d.m
Compiling /Users/highvision/Desktop/tweejump/tweejump/main.m
Preprocessing System/verde/config.m.m4
Compiling Build/android-armeabi-debug/tweejump/config.m
Archiving Build/android-armeabi-debug/tweejump/apk/lib/armeabi/libconfig.a
Indexing Build/android-armeabi-debug/tweejump/apk/lib/armeabi/libconfig.a
Archiving Build/android-armeabi-debug/com.iplayful.tweejump/tweejump/libtweejump.a
Indexing Build/android-armeabi-debug/com.iplayful.tweejump/tweejump/libtweejump.a
Linking Build/android-armeabi-debug/tweejump/apk/lib/armeabi/libverde.so
Saving build configuration
Packaging resources.
Packaging assets/fps_images.png
Packaging assets/Icon-Small-50.png
Packaging assets/Default.png
Packaging assets/Icon-72.png
Packaging assets/Icon-Small.png
Packaging assets/Icon-Small@2x.png
Packaging assets/Icon.png
Packaging assets/iTunesArtwork
Packaging assets/bitmapFont.fnt
Packaging assets/bitmapFont.png
Packaging assets/changePlayerButton.png
Packaging assets/playAgainButton.png
Packaging assets/sprites.png
Packaging ATTRIBUTION.txt
Packaging assets/Info.plist
Dexing classes.
Packaging classes.dex
Packaging lib/armeabi/libverde.so
Packaging lib/armeabi/gdbserver
Packaging lib/armeabi/libv.so
Packaging lib/armeabi/libcxx.so
Packaging lib/armeabi/libSystem.so
Packaging lib/armeabi/libobjc.so
Packaging lib/armeabi/libffi.so
Packaging lib/armeabi/libpthread_workqueue.so
Packaging lib/armeabi/libdispatch.so
Packaging lib/armeabi/libFoundation.so
Packaging lib/armeabi/libBridgeKit.so
Packaging lib/armeabi/libOpenAL.so
Finalizing Build/android-armeabi-debug/tweejump/tweejump-unaligned.apk
Signing APK with keys
Aligning Build/android-armeabi-debug/tweejump/tweejump-signed.apk
Loading...
Waiting for device...
で、デバイス側への転送が始まる。
手元のアレな端末で試したところ、まあ動く。
UIKit全開なものを変換するとどうなるのか
→https://groups.google.com/forum/?fromgroups#!topic/apportable-discuss/jVR7FOa61_U
StoryBoardからのものは無理。
xibからのものは出る、、ほんとか?
→UIWindowへの直接の追加は無効
色指定すら無視された、、上になんもないのに、、
→xibで追加されるViewへの特定の変更は有効
色指定が効いた(ブワッ
コード、xibともに効果が確認できた
ボタンの追加は、xibからならOK
ただしデフォルト無指定の場合、枠線が出ない。
素
iPhoneSimulator 640 x と、Android4.1 720 x1280
出た。 で、ScreenというかView基底というか、UIWindowに対して処理を書く事で、
スクリーン比に合わせた変換が出来る。と。
#ifdef ANDROID
[UIScreen mainScreen].currentMode =
[UIScreenMode emulatedMode:UIScreenAspectFitEmulationMode];
#endif
で、
比率的にはだいたい一緒になったのでは!!
比率的な話でいうと、セットしている「Windowに対して等倍になる」というオプションのおかげで、
画面サイズ 720 x 1280に対して、xibのレイアウト特性がちゃんと出た状態で描画されている。
→で、ボタン押せるの?
- (IBAction)touch:(id)sender {
[self.view removeFromSuperview];
}
が効いた。ちゃんと動いてる。ビュー消える。
アニメーションとかはどうなのかなー、UIAnimation試そう。
→ボタンの背景画像は?
出た。
ずれてるように見えるのは、_をフォントで書いているので、フォントサイズの変化によるモノだと思う。
たぶん前からこうなってるんだけど、背景が出た事で見えるようになった感じ。
→UIAnimationは?
効かないっぽい。
ぐあああああああああああああ惜しいいいいいいいいいいいいいい
→Rotationは?
iOSと全く同じ、というかxibで指定したデフォルト動作が再現された。
ただ、AutoLayoutと旧式のレイアウトだと、旧式レイアウトのほうがちゃんと表示される気がする。
比較不足。
Android側で1pxくらい下線がでてるのは、Screenshotの都合っぽい。
→UITableとか、UITextViewとか
ちゃんと出てる感ある。Cellとかで細かい事したらどうなるかな。
TextFieldはちゃんとキーボードでたし打てたしイベント伝達もした。
→UIWebView
xibで他のビューに内包したものだと、ローディングが開始されなかった。
単独のビューとして生成した場合、ちゃんと機能した。
ざっくりと変換OKだったもの
OpenGLESでのお絵描き
OpenAL系
AudioFramework系
このへんはOKだった。
NSTimerやDate系での時間を計った動作
OKだった。
GCD系
OKだった。
UIWebview
OKだった。
ただし、ビューの入れ子にすると正しく初期化されないぽい。
浅いレイヤーでベースに対して置く分にはOK。
ざっくりと変換が駄目だったもの
日本語
ラベルとかに貼ると文字化けJK
AFNetworking
no visible @interface for 'UIImage' declares the selector "initWithData:scale:" ネットワークとは別の理由で駄目。っぽい。
GPUImage
OpenGL系の定数宣言が無くアウトになる。
unknown type name 'CVOpenGLESTextureCacheRef'
unknown type name 'CVPixelBufferRef'
unknown type name 'CVOpenGLESTextureRef'
unknown type name 'CVPixelBufferRef'
プロパティが読めないとかなのかな。
PhotoPicker
AVBasicVideoOutput
カメラ系は駄目。
ゲームにフォーカスしているからかなーという読み。
apportableに関連したプロジェクトの管理について
Xcodeプロジェクトがある場所でapportableの各種コマンドを実行するのだけれど、
.sconsign.dblite
でいろいろ管理しているっぽい。っていうかXcodeのprojと同じ階層にぽいっと何か吐かれるので、こう、不味いことになりそう。
本題、内部変換的にどうなっているのか
ログ見るとだいたい解るような。
と思ったら
Seasonsさんという方がためになる死霊をupしてくださっていました。
http://www.slideshare.net/seasons/apportable-meeting
アプリケーションパッケージはどうなっているのか
Android用のパッケージが、下記に吐かれている。
/Users/ユーザー名/.apportable/SDK/Build
ここに、android-armeabi-debugフォルダが出来ていて、
中はこんな感じ。
java、java-classes フォルダは 空だった。
途中の生成に使ってるのかなーって監視してみたけど、特になにも、、
apportableコマンドラインをドカッとはりつけ
highvision:SimpleWindowApp highvision$ apportable -h
usage: apportable [-h] [-v [VERBOSE_FLAGS]] [-j [NUM_JOBS]]
[--debug-scons DEBUG_SCONS] [--no-xcode] [--no-merge]
[--generate] [--target TARGET] [--xcode-project PROJECT]
[--xcode-workspace WORKSPACE] [--xcode-config CONFIGURATION]
[--xcode-target TARGET] [--xcode-scheme SCHEME]
[--xcode-sdk SDK] [--xcode-arch ARCH] [--fast-mode]
[--profile PROFILE] [--build-flags BUILD_FLAGS]
[--custom-params CUSTOM_PARAMS] [--version]
[--tools UPDATE_TOOLS] [--confirm-stable-updates]
[--use-clang-version USE_CLANG_VERSION]
[--use-gdb-version USE_GDB_VERSION]
[--use-sdk-version USE_SDK_VERSION]
[--use-ndk-version USE_NDK_VERSION]
[--use-vorbistools-version USE_VORBISTOOLS_VERSION]
[--use-m4-version USE_M4_VERSION] [--ninja]
[{load,kill,just_debug,log,clean_assets,just_debug_java,copy_and_debug,build,analyze,update_toolchain,profile,clean,screenshot,copy_and_load,update,just_profile,dump_env,dst_clean,just_load,patch,debug_java,install,debug,clean_device_cache,uninstall}]
positional arguments:
{load,kill,just_debug,log,clean_assets,just_debug_java,copy_and_debug,build,analyze,update_toolchain,profile,clean,screenshot,copy_and_load,update,just_profile,dump_env,dst_clean,just_load,patch,debug_java,install,debug,clean_device_cache,uninstall}
Invoke a build action. default = build
optional arguments:
-h, --help show this help message and exit
-v [VERBOSE_FLAGS], --verbose [VERBOSE_FLAGS]
Verbose logging output. (compile,scons,signing,link,ex
plain,copy,builders,archive)
-j [NUM_JOBS], --jobs [NUM_JOBS]
--debug-scons DEBUG_SCONS
Comma-separated list of scons debug options (count,
dtree, explain, findlibs, includes, memoizer, memory,
objects, presub, stacktrace, stree, time, tree,
prepare, duplicate, randomdeps)
--no-xcode Disable Xcode invocations.
--no-merge Disable merging parameters (just use final).
--generate Force re-generation of Xcode derived parameters.
--target TARGET
--xcode-project PROJECT
Xcode project to generate parameters from (only
available on MacOS X).
--xcode-workspace WORKSPACE
Xcode workspace to generate parameters from (only
available on MacOS X).
--xcode-config CONFIGURATION
Xcode project configuration.
--xcode-target TARGET
Xcode project target to build.
--xcode-scheme SCHEME
Xcode project scheme to build.
--xcode-sdk SDK Xcode project sdk to build with.
--xcode-arch ARCH Xcode project arch to build for.
--fast-mode Disable header tracking and skip certain time costly
steps (note: this may be dangerous!)
--profile PROFILE Build with function profiling enabled.
--build-flags BUILD_FLAGS
Display the build flags for a given file
--custom-params CUSTOM_PARAMS
Add special environment switches for use with
conditional merge items. Note: this option is
potentially dangerous, use with care!
--version Show version information.
--tools UPDATE_TOOLS Comma-separated list of which tools you want to update
(eg: gdb,clang,android-ndk,android-sdk,ninja ). For
use with update_toolchain.
--confirm-stable-updates
Automatically choose the stable variants of the
toolchain when updating
--use-clang-version USE_CLANG_VERSION
Automatically choose this version of this tool when
updating the toolchain.
--use-gdb-version USE_GDB_VERSION
Automatically choose this version of this tool when
updating the toolchain.
--use-sdk-version USE_SDK_VERSION
Automatically choose this version of this tool when
updating the toolchain.
--use-ndk-version USE_NDK_VERSION
Automatically choose this version of this tool when
updating the toolchain.
--use-vorbistools-version USE_VORBISTOOLS_VERSION
Automatically choose this version of this tool when
updating the toolchain.
--use-m4-version USE_M4_VERSION
Automatically choose this version of this tool when
updating the toolchain.
--ninja Use ninja to build.
ninja.pyってのがToolChainに入ってたがそれだろうか。
ちなみにninjaはIndieにしか含まれないっぽい。
Build actions:
互いに内包したりしてるタスク集。MavenでいうGoalみたいなの。
build: Compile c/c++/objc/objc++/java sources and create
application archive.
ビルド成果っていうかアーカイブが作られる場所が大変特殊で、
/Users/ユーザー名/.apportable/SDK/Build
の下に作られる。
install: Invoke the <build> phase, and install the application on a
connected device/emulator.
load: Invoke the <install> phase and launch the application.
uninstall: Uninstall app from device.
kill: Kill running app on device.
screenshot: Take a screenshot and save it into the current directory
Native Debugging:
debug: Invoke the <load> phase and attach the debugger (gdb).
just_debug: Launch the application and attach the debugger (no build
or install phases are invoked).
log: Show the system log for the attached device.
clean_device_cache: Delete the cache of device libraries. Use this if you
are having problems debugging on a device. Next time
you debug, it will redownload all of the device
libraries.
Java Debugging:
debug_java: Invoke the <load> phase and attach the Java debugger (jdb).
just_debug_java: Launch the application and attach the Java debugger (no
build or install phases are invoked).
Profiling:
profile: Invoke the <load> phase in profiler mode and load the
Profiler tool.
just_profile: Launch the application in profiler mode and load the
Profiler tool (no build or install phases are invoked).
Toolchain Managment:
update_toolchain: Update the currently installed toolchain
update: Update the SDK
プラン、IndieとかProとかEnterpriseとか
Free < 超えられない壁 < Indie < 超えられない壁 < Pro = Enterprise
なのかなーまだ良く解ってないけど。
Indie触ってみた感想だと、UIKit周りが出せるのがIndieからなので、
それ以下だとUI的な旨味はゼロになる印象。
まーUIはルールがー
みたいな話になるけどな。
気になった事
ARCはどうなってしまうのか
問題ないような。
Javaで追記できるのか
できた。
Unityとかは?
Freeだと無理。
適当に作ったプロジェクトを動かそうとしたが、apportable load自体でエラーが出た。
Indieだと動かせるのかな。
Storeとかは?
組み込みのものがあってそこにブリッジされるみたいなものすごい事がさらっと書いてあったが、
どうなっているのやら。
AndroidのVersionごとに微妙に差異があるのをどう解消してるのかな。とか、
一時保存とかどうしてるのかな、とか、
リストアとかのときどうするの?とか
まとめ
かなり根本的な機構から移植というか動作可能コンバートというか、稼働するようになっているので、
上辺だけの変換ではなく、根っこから誠実に実装されてるんだなーという感じがする。
UIKitでのレイアウトが生かせるのは、その部分だけ考えても大変有用なのでは。